/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import DAO.Etudiant;
import DAO.Evenement;
import DAO.Service;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.persistence.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;


@ManagedBean (name = "etudiant")
@SessionScoped
public class EtudiantBean implements Serializable {
     private Integer id;
     private String login;
     private String password;
     private String nom;
     private String prenom;
     private Date datenaissance;
     private int idparcours; 
     private List<String> parcours;
     private boolean connected=false;

    public int getId() {
        return id;
    }
      
    public List<String> getParcours() {
        Service service=new Service();
        return service.getParcours();    
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getPrenom() {
        return prenom;
    }

    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }

    public Date getDatenaissance() {
        return datenaissance;
    }

    public void setDatenaissance(Date datenaissance) {
        this.datenaissance = datenaissance;
    }

    public int getIdparcours() {
        return idparcours;
    }

    public void setIdparcours(int idparcours) {
        this.idparcours = idparcours;
    }
    
    public List<String> getListParcours(){
        Service service=new Service();
        return service.getParcours();
    }
    
    public void addEtudiant(){
        Service service=new Service();
        Etudiant etudiant=new Etudiant();
        etudiant.setLogin(login);
        etudiant.setPassword(password);
        etudiant.setNom(nom);
        etudiant.setPrenom(prenom);
        etudiant.setDatenaissance(datenaissance);
        System.out.println("idParcours: "+idparcours);
        etudiant.setIdparcours(idparcours);
        service.addEtudiant(etudiant);
    }
     
    public EtudiantBean() {
    }

    public boolean isConnected() {
        return connected;
    }
    
    
    public void deconnexion(){
        connected=false;
    }


    
    /*
    public List<Evenement> getEvenementList() {
        return evenementList;
    }

    public void setEvenementList(List<Evenement> evenementList) {
        this.evenementList=evenementList;
    }
    
    public void ajouterEvenement(Evenement e){
        evenementList.add(e);
    }
    
    public void modifierEvenement(Evenement e){
        for(Evenement evt:evenementList){
            if(evt.getId()==e.getId()){
                evenementList.remove(evt);
                evenementList.add(e);
                break;
            }
        }
    }
    
    public void supprimerEvenement(Evenement e){
        evenementList.remove(e);
    }
    */
    //public static int cpt=0;
    public String valider() {
        Service service=new Service();
        id=service.getEtudiant(login, password);
        if(id==null){
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "erreur d'authentification", "Vous vous êtes trompé dans votre login/mot de passe,\n Veuillez reéssayer a nouveau");
            addMessage(message);
            return null;
        }       
        Etudiant etudiant=service.getEtudiant(id);
        nom=etudiant.getNom();
        prenom=etudiant.getPrenom();
        datenaissance=etudiant.getDatenaissance();
        idparcours=etudiant.getIdparcours();
        connected=true;
        
        //SQLQuery query=session.createSQLQuery("SELECT * FROM EVENEMENT WHERE IDEUDIANT="+getId());
        //setEvenementList(query.list());
        
        return "agenda";
    }
    public String getCurrentParcours(){
        Service service=new Service();
        return service.getParcour(idparcours).getIntitule();     
    }
    
    private void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
    
    public void reset(){
        nom=null;
        prenom=null;
        datenaissance=null;
        login=null;
        password=null;
        idparcours=2;
    }
    
    public String doPost() {
        addEtudiant();
        return "agenda";
    }
}